Assembly Language প্রোগ্রামিংয়ে Stack Pointer (SP) এবং Base Pointer (BP) দুইটি গুরুত্বপূর্ণ রেজিস্টার, যেগুলি স্ট্যাকের কার্যক্রম পরিচালনা এবং ব্যবস্থাপনার জন্য ব্যবহৃত হয়। স্ট্যাক মেমোরির একটি বিশেষ অংশ যেখানে ডেটা অস্থায়ীভাবে সংরক্ষণ করা হয়, বিশেষত ফাংশনের কল এবং রিটার্ন অপারেশনগুলির জন্য।
Stack Pointer (SP):
PUSH
Instruction ব্যবহার করা হয়, SP রেজিস্টার আপডেট হয় এবং ডেটা স্ট্যাকে সংরক্ষিত হয়। আর POP
Instruction এর মাধ্যমে ডেটা স্ট্যাক থেকে বের করা হলে SP আপডেট হয়।উদাহরণ:
PUSH AX ; AX এর ডেটা স্ট্যাকে সংরক্ষণ, SP কমে যাবে
POP BX ; স্ট্যাক থেকে ডেটা BX এ পুনরুদ্ধার, SP বাড়বে
Base Pointer (BP):
PUSH
করে রাখা হয় এবং পরে ফাংশন শেষে পুনরায় রিস্টোর করা হয়।উদাহরণ:
PUSH BP ; BP এর পূর্বের মান সংরক্ষণ
MOV BP, SP ; নতুন ফ্রেমের জন্য BP সেট করা
; লোকাল ভেরিয়েবল এবং প্যারামিটার অ্যাক্সেস
POP BP ; BP এর পূর্বের মান পুনরুদ্ধার
Stack Pointer (SP) এবং Base Pointer (BP) এর মধ্যে পার্থক্য:
বৈশিষ্ট্য | Stack Pointer (SP) | Base Pointer (BP) |
---|---|---|
প্রধান কাজ | স্ট্যাকের বর্তমান টপ নির্দেশ করে | স্ট্যাক ফ্রেমের বেস পয়েন্টার নির্দেশ করে |
ব্যবহার | PUSH এবং POP অপারেশনের সময় আপডেট হয় | ফাংশনের প্যারামিটার এবং লোকাল ভেরিয়েবল অ্যাক্সেস |
মান পরিবর্তন | স্বয়ংক্রিয়ভাবে পরিবর্তিত হয় | সাধারণত ফাংশন কলের সময় ম্যানুয়ালি ব্যবহৃত |
ফ্রেম পয়েন্টার হিসেবে | ব্যবহার করা হয় না | ফ্রেম পয়েন্টার হিসেবে কাজ করে |
সারসংক্ষেপ
Stack Pointer (SP) রেজিস্টার স্ট্যাকের বর্তমান অবস্থান নির্দেশ করে এবং PUSH এবং POP নির্দেশনাগুলির সময় স্বয়ংক্রিয়ভাবে আপডেট হয়। Base Pointer (BP) রেজিস্টার ফাংশনের লোকাল ভেরিয়েবল এবং প্যারামিটার অ্যাক্সেসের জন্য ফ্রেম পয়েন্টার হিসেবে ব্যবহৃত হয়। ফাংশন কলের সময় BP ম্যানুয়ালি নিয়ন্ত্রণ করা হয়, যা স্ট্যাক ফ্রেম পরিচালনা করতে সাহায্য করে।
common.read_more